Current CAD applications allow a user to define parent-child relationships (links) between objects, such as geometry, expressions, and parts. The user, unfortunately, cannot control what objects within a part may be used to create a relationship to another related or derived part. Similarly, the user cannot specify mating points/geometry that are needed to assemble standard and reusable parts when they are used in other assemblies. Consequently, users can create unmanageable dependencies, etc., that are too complex to understand. In many cases, the user may reach interdependent situations that do not have a solution.
In order to trace the interdependencies, the CAD systems of today, require that the inter-connected parts, etc., be fully loaded into memory. As the assemblies grow in complexity, however, this load requirement is not always practicable when all of the parts are not known. Even if all of the parts are known, they may not all fit into a memory load. Consequently, it is often times difficult for the user to determine what part files will be impacted when a particular object in another part file is changed or deleted.
What is needed is a system and method that allows users the ability to define and control dependencies at a part level so the original designer of the part can limit or eliminate dependencies placed upon the part, as well as determine which parts are compatible in an assembly without having to load the parts in to a CAD system to visually inspect them.